#include<stdio.h>
void swap(int *a,int *b)
{
    int t;
    t=*a;
    *a=*b;
    *b=t;
}
int danpai(int *arr,int start,int end)
{
    int key=start;
    while(start<end)
    {
        while(start<end&&arr[end]>=arr[key])
        {
            end--;
        }
        if(start<end)
        {
            swap(&(arr[end]),&(arr[key]));
            key=end;
            start++;
        }
        while(start<end&&arr[start]<=arr[key])
        {
            start++;
        }
        if(start<end)
        {
            swap(&(arr[start]),&(arr[key]));
            key=start;
            end--;
        }
    }
    return key;
}
void print(int *arr,int len)
{
    int i=0;
    for(i=0;i<len;i++)
    {
        printf("%d ",arr[i]);
    }
}
void kuaishu(int *arr,int start,int end)
{
    if(start>=end)
    {
        return ;
    }
    int hjx=danpai(arr,start,end);
    kuaishu(arr,start,hjx-1);
    kuaishu(arr,hjx+1,end);
}
int main()
{
    int arr[]={49,38,13,27,76,97,65,69};
    int len=sizeof(arr)/sizeof(arr[0]);
    int start=0;
    int end=len-1;
//    danpai(arr,start,end);
//    print(arr,len);
    kuaishu(arr,start,end);
    print(arr,len);
    return 0;
}
